Interface
Интерфейс Network Utilities, основные возможности.
Результат работы каждой утилиты можно скопировать в буфер обмена. Как отдельное поле, так и всю строку целиком. Для этого необходимо использовать долгое нажатие вплоть до появления контекстного меню.
Адреса, полученные с помощью сетевых сканеров (IP Discover и Subnet scanner) можно вставлять в текстовые поля, предназначенные для ввода адреса (ip/mac) в других утилитах. Для этого необходимо долгое нажатие на соответствующем текстовом поле, вплоть до появления контекстного меню со списком адресов.
Network Utilities позволяет работать одновременно в нескольких вкладках (хоть во всех одновременно), при этом можно вращать устройство, открывать диалоги со вспомогательными инструментами и тд. К примеру - запустив сниффер, можно работать с любой другой вкладкой, после чего просмотреть полученные дампы, вернувшись во вкладку сниффера.
В отдельных утилитах (например, в Sniffer), для экономии места, отдельные поля могут быть скрыты в портретном режиме. При этом "недостающие" поля появятся в ландшафтном режиме (после поворота экрана).
Некоторые инструменты распологаются не во вкладках, а в диалогах, открываемых из Action bar. На данный момент это - IP Calculator, DNS Lookup и Whois.
В некоторых утилитах опции и текстовые поля вынесены на панель, которую можно скрыть (кнопка в левом нижнем углу).
Цветовую гамму интерфейса всегда можно изменить, задав тему в настройках программы. На данный момент доступны светлая и черная темы.
IP Discover
Программа отображает IP и MAC адреса всех узлов в сети, а также вендоров и доменные имена (если удастся их получить). Можно настроить режим работы, кол-во проходов сетевого сканера, а так же таймауты, открыв диалог Set timeouts, где:
"Mode" задает режим работы
"Loops" означает кол-во проходов (значение больше 1 увеличит вероятность отображения всех хостов, но увеличит время работы).
"Name timeout" - время ожидания ответов от службы имен. Чем выше значение, тем c большей вероятностью удастся срезолвить имя хоста (при условии запущенной службы имен на хосте), но дольше время работы.
"Reach timeout" - время ожидания при прозвоне (используется только в режиме 'Read arp'). Некоторые устройства могут не отвечать на первый arp запрос, поэтому увеличивая значения данного параметра может улучшить результат сканирования, однако увеличит время прозвона.
Изменяя данные параметры, можно с легкостью адаптировать сетевой сканер под свои цели/сеть/устройство, сохраняя при этом балланс между надежностью отображения и скоростью работы.
Адреса, полученные с помощью IP Discover можно вставлять в поля, предназначенные для ввода адреса, в других утилитах. Для этого необходимо использовать долгое нажатие на нужное текстовое поле до появления списка IP/MAC адресов.
IP range scanner
Сканер с задаваемым диапазоном адресов. С его помощью можно искать хосты, входящие в другую подсеть. Результатом работы будет список полученных ip адресов и доменных имен.
Для запуска сканирования необходимо ввести диапазон IP адресов. Остальные поля не являются обязательными
В поле проверки портов можно ввести список номеров портов, разделяя их пробелами. Например: 22 23 53 80
Возможно использование фильтра по портам ("show all hosts" - отображать все хосты, "with open ports" - отображать хост, если открыт один или более портов, "If all ports open" - отображать в случае, если все указанные порты открыты)
Например, чтобы найти web сервер в сети, необходимо ввести диапазон адресов, 80 порт и использовать "With open ports" фильтр
Netstat
Отобразит открытые сокеты и сведения о соединениях, соответствующих этим сокетам. При переходе во вкладку данные о соединениях будут обновлены и отображены. Также можно запустить программу и отслеживать соединения в реальном времени.
Ping
Программа предназначена для проверки соединения, а так же оценки скорости доставки пакета до целевого хоста.
Traceroute
Утилита позволит проследить маршрут до целевого хоста. Возможно ручное изменение масимального ttl (времени жизни пакета), а также таймаута между отправками echo запросов.
Port scanner
Port scanner. Используется для сканирования портов.
Допустимый диапазон портов для проверки: 1-65535
Поля ввода номеров портов можно оставить пустыми. В этом случае программа проверит только зарегистрированные порты (~1200 портов)
В "Root mode" становится доступным "UDP" сканирование. При использовании UDP скана рекомендуется проверять небольшие диапазоны (1-5 портов) за раз
Sniffer
Данная утилита требует прав суперпользователя и доступна только в Root режиме работы. Режим функционирования программы может быть переключен в настройках.
Sniffer. Предназначен для получения дампов пакетов, идущих через указанный сетевой интерфейс и их последующего изучения.
Содержимое каждого дампа можно просматривать встроенным HEX вьювером (для этого необходимо нажать на соответствующий элемент списка).
Sniffer позволяет работать с pcap файлами - открывать их и сохранять. Сохраненные файлы можно открывать с помощью сторонних анализаторов траффика. Найти сохраненные pcap файлы можно в папке
/sdcard/Android/data/com.myprog.netutils/sniffer/pcap
Опция 'buff size' позволяет задать размер буфера (или убрать ограничение). При достижении указанного размера, сниффер завершится автоматически.
В настройках сниффера присутствует возможность переключения между wi-fi/mobile режимами. Необходимо помнить, что при прослушке мобильного траффика, пакеты захватываются не на канальном, а на сетевом уровне (начиная с ip заголовка), поэтому в начало каждого дампа вклеивается "фальш" ethernet заголовок (первые 14 байт). Делается это затем, чтобы сохранить возможность сохранения и корректного открытия полученного pcap файла.
Используя диалог фильтров, вы можете настраивать фильтры или же создавать собственный BPF код (подробнее о синтаксисе можно прочитать в секции "BPF компилятор"). При использовании стандартных фильтров на данный момент возможна фильтрация по протоколам, ip адресам, номерам портов и по raw тексту. В текстовых полях, соответствующих адресам/номерам портов можно вводить список значений, разделяя их пробелами, а также указывать диапазоны, разделяя значения символом '-'.
Помните, что при использовании мобильного режима (Mobile mode) необходимо оставлять в поле "ETH proto" значение по умолчанию, в ином случае фильтр работать не будет (т.к. ethernet заголовок в данном случае будет отсутствовать)
BPF компилятор
Упрощенный синтаксис (вида "src host xxxx dst port y") на данный момент не поддерживается. Поддерживаемый формат записи описан ниже.
Любое условие представляет из себя сравнивание двух операндов. В качестве операндов может использоваться выборка значения из пакета, числовая константа или же арифметическое выражение. Над результатом сравнивания могут проводиться операции or, and и not. Возможны сложные логические выражения со скобками (вообщем все идентично стандарту языка С)
Выборка значения из пакета (кейворды и формат записи):
ether[addr:size] - значение из ethernet заголовка по смещению addr размера size
ip[addr:size] - значение из ip заголовка по смещению addr размера size, также будет подставлена проверка на IP протокол
tcp[addr:size] - значение из tcp заголовка, будет вклеена проверка на протокол ip и TCP
udp[addr:size] - значение из udp заголовка, будет вклеена проверка на протокол ip и UDP
icmp[addr:size] - значение из icmp заголовка, будет вклеена проверка на протокол ip и ICMP
raw[addr:size] - значение из заголовка, следующего за IP заголовком, с проверкой только на ip протокол
Где:
addr - числовая константа, задающая смещение.
size - числовая константа, задающая размерность. Возможные значения - 1, 2, 4
Например, выборка адреса отправителя из ip заголовка будет выглядеть следующим образом:
ip[12:4]
Выборка номера порта отправителя:
udp[0:2] - для udp, tcp[0:2] - для tcp и raw[0:2] если проверка на протокол не требуется
Числовые константы по умолчанию считаются десятичными. 16ричные константы должны содержать префикс 0x (пример: 0xa)
Действия, используемые в логических выражениях:
&& and
|| or
! not
Сравнивание:
== если равно
!= если не равно
< если меньше
> если больше
>= если больше или равно
<= если меньше или равно
Действия, используемые в арифметических выражениях:
- sub
+ add
* mul
/ div
| or
& and
<< shl
>> shr
Пара примеров:
ip[16:4]==0xc0a80101 && (udp[2:2] >= 1 && udp[2:2] <= 1024 || tcp[2:2] >= 1 && tcp[2:2] <= 1024)
Пример выше отобразит все udp и tcp пакеты с номером порта получателя 1-1024 и ip адресом получателя 192.168.1.1
ip[16:4]&0xffffff00 == 0xc0a80100&& ip[12:4]&0xffffff00 == 0xc0a80100
В данном примере будут отображены пакеты, отправитель и получатель которых находятся в сети 192.168.1.0 при маске 255.255.255.0
Для получения большего количества примеров вы можете воспользоваться функцией сохранения во вкладке фильтров. В этом случае вместе с фильтром будет сохранен bpf исходник, открыть который можно во вкладке редактора.
Packet crafter
Утилита для создания и отправки произвольного ethernet пакета. Может использоваться для диагностики или изучения сетевых протоколов. В связке со сниффером программа и вовсе может использоваться (в той или иной степени) для имитации работы практически любой сетевой утилиты.
Программа позволяет сконфигурировать и отправить (или сохранить) пакет произвольного протокола (формируется начиная с ethernet заголовка). Сохраняться сконфигурированные пакеты будут в pcap, найти который можно в папке сохранения пакетного сниффера(Sniffer). Воспользовавшись функцией сохранения в packet crafter, всегда можно перейти во вкладку 'Sniffer', открыть соответствующий файл и исследовать полученный пакет.
Перед отправкой необходимо сконфигурировать каждый заголовок, начиная с ethernet. Программа автоматически предлагает "рабочие значения", а наиболее часто изменяемые вынесены наверх (ip адреса в ip заголовке и тд). Даже если вы планируете отправить пакет со значениями во всех заголовках по умолчанию, перед первым запуском (до выхода из приложения) необходимо открыть конфигурационный диалог для каждого заголовка, входящего в пакет и сохранить параметры.
ARP spoofer
ARP spoofer. Предназначен для перенаправления траффика. В данной реализации это довольно гибкая программа, с помощью которой можно:
1) Пустить траффик узла "жертвы" через себя
2) Пустить через себя не только траффик жертвы, но и траффик, идущий от шлюза к жертве(галочка MITM, в переводе Man in the middle)
3) Уронить интернет на машине жертвы. Вы можете отключить маршрутизацию(Forwarding) и пустить траффик жертвы через себя. Можете использовать MITM, чтобы не пускать так же и пакеты, идущие к "жертве" от шлюза
Перед использованием ARP spoofer'а необходимо запустить IP discover, чтобы заполнить базу адресов. В ARP spoofer'е же нужно поставить галочку напротив интересующихс адресов, после чего запустить программу. По умолчанию программа шлет ответы от имени шлюза, однако это можно изменить. Для этого достаточно ввести нужный адерес в поле Spoofing IP.
DNS spoofer
После того, как вы воспользовались ARP spoofer'ом и пустили траффик "жертвы" через себя, можете воспользоваться DNS spoofer'ом. Задачей данной программы является перехватывать запросы жертвы, адресованные DNS серверу и подсовывать ей в ответ IP адрес от имени DNS'а, который вы укажете(указывать можете и доменное имя). Перед запуском создается таблица с именами доменов и соответствующими адресами. Если происходит запрос к имени, которого нет в таблице, программа вернет настоящий адрес, полученный от DNS сервера, если же имя находится в таблице, вернется IP адрес, который был указан. Таким образом вы можете перенаправлять жертву куда вам вздумается
HTTP Sniffer
Предназначен для перехвата HTTP траффика, идущего от жертвы, в частности возможна фильтрация по Cookies. Представляет из себя небольшой HTTP прокси, который получает запросы жертвы, отображает GET и POST запросы(заголовки выводятся, содержимое вы можете просмотреть, нажав на нужный элемент списка), направляет их серверу, получает ответ, опционально изменяет его(в случае SSL strip ссылки https:// будут подменены на http://) и возвращает жертве. Использовать совместно с ARP spoofer'ом.
Вы можете подменять страницы, идущие к жертве, для этого добавьте страницу для интересующего домена(диалог Add page) и перед запуском сниффера поставте галочку на Fake pages.
JS Injection. Вы можете внедрять собственный JS код в html страницы, идущие к "жертве". Для этого поставьте галочку на JS injection и напишите свой JS код в открывшимся диалоге. Теги script писать не нужно, программа вставит их за вас. Только код(например, alert('hello');).
Кроме того, вы можете сохранить дампы запросов/ответов в pcap файл(кнопка Save). Каждый раз будет создаваться новый файл, найти который вы сможете в папке /sdcard/Android/data/com.myprog.netutils/http_sniffer/pcap/. Так же .pcap файлы, сохраненные ранее вы сможете открыть после, с помощью кнопки Open. Отмечу лишь, что файлы, созданные моим HTTP sniffer'ом, будут открываться только им(это не распространяется на пакетный сниффер).
Вы можете переслать любой запрос Count раз, воспользовавшись функцией Send in во вьювере запросов(menu->Send in->send).
Network Spoofer
Программа для подмены HTTP траффика. Используется совместно с ARP Spoofer'ом. На данный момент возможно подменять как страницу целиком, так и изображения отображаемые на странице произвольными картинками. Так же возможно внедрение JS кода в код возвращаемой html страницы. При использовании фильтра по домену подменяться будут только страницы/картинки, запрошенные с сервера с указанным доменным именем.
Возможна подмена скачиваемых "жертвой" файлов. Для этого воспользуйтесь функцией Fake files. В открывающимся диалоге вы должны выбрать файл, содержимым которого вы будете подменять то, что скачивает жертва, а так же, опционально, задать расширение файла, который в итоге скачается у "жертвы"(поле Ext). Небольшое примечание: работать данная функция будет лишь при использовании File Transfer.
Возможность "промежуточных" действий над запросами и ответами: Кроме заготовленных возможностей вы можете использовать собственные программы/скрипты для подмены траффика. Чтобы их вызвать, необходимо включить опцию "req scr" или "response scr" и ввести команду. При активации данного пункта Network spoofer перед отправкой запроса/ответа будет записывать его на диск по пути /sdcard/Android/data/com.myprog.netutils/network_spoofer/scr. Файл запроса соответственно будет request, ответа - response. После отработки команды полученный(измененный вашей программой) запрос/ответ будет считан и отправлен дальше. Пример команды: echo Hello > /sdcard/Android/data/com.myprog.netutils/network_spoofer/scr/response. В этом случае жертва будет видеть строчку Hello вместо запрашиваемой страницы. Небольшое примечание: команда может состоять из одной строки. Если необходимо выполнить ряд действий, можно прописать запуск скрипта/программы.
Данная программа работает по тому же принципу, что и HTTP Sniffer, и они не могут работать совместно.
TCP Proxy
Программа предназначена для перехвата TCP траффика. Используется совместно с ARP spoofer. Протокол прикладного уровня не имеет значения, т.е. инструмент может использоваться для изучения траффика произвольного приложения. Полученные запросы от приложения и ответы от сервера могут просматриваться встроенным HEX viewer, для этого необходимо использовать клик по нужному элементу списка.
Пример использования: при указании 80 порта приложение может служить альтернативой http sniffer. При указании 443 порта и активации опции ssl proxy, приложение будет перехватывать https траффик.